// 引入静态路由 和 动态路由
import { constantRoutes, asyncRoutes } from '@/router'

const state = {
  routes: constantRoutes // 所拥有的所有访问权 = 静态访问权 + 动态访问权
}
const mutations = {
  // 修改routes
  //  newRoutes就是登陆以后，根据用户的权限筛选出的动态路由
  setRoutes(state, newRoutes) {
    state.routes = [...constantRoutes, ...newRoutes]
  }
}
const actions = {
  // 筛选权限路由
  // 第二个参数为当前用户所拥有的用户权限
  filterRoutes(context, menus) {
    // menus是数组，里面放了当前用户的所有页面访问权
    // menus是权限点 和 路由的name字段关联起来
    // 在所有的页面中过滤，看那个页面的name出现在权限点中
    const results = asyncRoutes.filter(item => menus.some(key => key === item.name))
    context.commit('setRoutes', results)// 完成了菜单访问的控制权
    return results // 为了完成路由拦截的访问权
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions

}
